/**
 * 2010(c) Copyright Oceansoft Information System Co.,LTD. All rights reserved.
 * <p>
 * Compile: JDK 1.6+
 * <p>
 * 版权所有(C)：江苏欧索软件有限公司
 * <p>
 * 公司名称：江苏欧索软件有限公司
 * <p>
 * 公司地址：中国苏州科技城青山路1号
 * <p>
 * 网址: http://www.oceansoft.com.cn
 * <p>
 * 作者: 090922(陈伟)
 * <p>
 * 文件名: com.oceansoft.mobile.econsole.common.util.SessionUtil.java 
 * <p>
 * 类产生时间: 2014/4/26 0026 下午 18:54
 * <p>
 * 负责人: 090922(陈伟)
 * <p>
 * Email:javacspring@gmail.com
 * <p>
 * 所在组 : 掌上公安应用平台
 * <p>
 * 所在部门: 开发部--手持技术部
 * <p>
 * <p>
 */
package cn.com.oceansoft.nos.common.util;


import cn.com.oceansoft.nos.common.constant.Constant;
import cn.com.oceansoft.business.sys.entity.SysUser;

import javax.servlet.http.HttpSession;
import java.util.Set;


/**
 * Session工具类
 *
 * @author: chenw
 * @time: 2014/4/26 0026 下午 18:54
 */
public class SessionUtil {

    /**
     * 保存登录用户会话信息
     *
     * @param session Session
     * @param obj     待存储于session数据
     */
    public static void save(HttpSession session, Object obj) {
        session.setAttribute(Constant.SESSION_USER, obj);
    }

    public static void invalidate(HttpSession session) {
        session.setAttribute(Constant.SESSION_USER_PRIVILEGE, null);
        session.setAttribute(Constant.SESSION_USER, null);
        session.invalidate();
    }

    public static void savePrivilege(HttpSession session, Set<String> resources) {
        if (null != resources)
            session.setAttribute(Constant.SESSION_USER_PRIVILEGE, resources);
    }

    public static boolean hasPrivilege(HttpSession session, String path) {
        if (null != path && 0 < path.length()) {
            Set<String> pris = (Set<String>) session.getAttribute(Constant.SESSION_USER_PRIVILEGE);
            return pris.contains(path);
        }
        return false;
    }

    public static SysUser session(HttpSession session) {
        if (null != session) {
            Object obj = session.getAttribute(Constant.SESSION_USER);
            return null != obj ? ((SysUser) obj) : null;
        }
        return null;
    }
}
